#include<bits/stdc++.h>
using namespace std;
typedef long long ll;

array<int,3> get(const vector<int> &nums,int k){
    int n=nums.size();
    int left=1,right=n;
    int L=0,R=n;
    vector<int> pre(n+1,0);
    while(left<right){
        int mid=(left+right+1)/2;
        for(int i=0;i<n;i++){
            pre[i+1]=pre[i]+(nums[i]>=mid?1:-1);
        }
        
        bool ok=false;
        int mn=0,l0=0,r0=0;
        for(int i=k;i<=n;i++){
            if(pre[i-k]<mn){
                l0=i-k;
                mn=pre[i-k];
            }
            if(pre[i]>=mn){
                r0=i;
                ok=true;
                break;
            }
        }
        if(ok){
            left=mid;
            L=l0;
            R=r0;
        }else{
            right=mid-1;
        }
    }
    return {left,L,R};
}

void solve(){
    int n,k;
    cin>>n>>k;
    vector<int> nums(n);
    for(int i=0;i<n;i++){
        cin>>nums[i];
    }

    auto [max, l, r] = get(nums, k);
    cout<<max<<' '<<l+1<<' '<<r<<'\n';

}

int main(){
    ios::sync_with_stdio(0);
    cin.tie(0),cout.tie(0);
    int t=1;
    cin>>t;
    while(t--){
        solve();
    }
}